package org.tinaelle.client.gui.grid;

import com.google.gwt.user.client.rpc.AsyncCallback;
import com.gwtext.client.data.Record;
import com.gwtext.client.data.RecordDef;
import com.gwtext.client.widgets.grid.ColumnModel;

/**
 * DOCUMENT ME!
 * 
 * @author $author$
 * @version $Revision$
 * @param <T>
 */
public interface DynaTableDataProvider<T> {

	RecordDef getRecordDef();

	ColumnModel getColumnModel();

	void saveOrUpdateRecord(Record record, AsyncCallback<T> callBack);

	void deleteRecord(Record record, AsyncCallback<Void> callBack);

	public Record getNewRecord();

	public T convertToDTO(Record record);

	public Record convertToRecord(T adObjectDTO);
} // end DynaTableDataProvider
